package com.lp.biz.coupon.service;

import com.lp.biz.coupon.model.entity.BizCoupon;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lp.biz.coupon.model.query.CouponQuery;
import com.lp.biz.coupon.model.vo.CouponAdd;
import com.lp.biz.coupon.model.vo.SpecifyCouponAdd;
import com.lp.common.utils.CommonResult;

/**
 * BizCoupon 服务类
 * @program: backend
 * @author Ke.Song
 * @since 2024-07-21 23:38:11
 */
public interface BizCouponService extends IService<BizCoupon> {

    /**
     * 获取优惠券列表
     * @param query 查询参数
     * @return 查询结果
     */
    CommonResult getCouponList(CouponQuery query);

    /**
     * 创建优惠券
     * @param params 优惠券参数
     */
    void addCoupon(CouponAdd params);

    /**
     * 创建优惠券
     * @param couponId 优惠券id
     */
    void deleteCoupon(Integer couponId);

    /**
     * 指定用户发放优惠券
     * @param params 参数
     */
    void specifyMember(SpecifyCouponAdd params);

    /**
     * 获取指定优惠券列表
     * @param query 查询参数
     * @return 查询结果
     */
    CommonResult getSpecifyCoupon(CouponQuery query);

    /**
     * 删除指定优惠券列表
     * @param couponId 优惠券id
     */
    void deleteSpecifyCoupon(Integer couponId);

    /**
     * 获取优惠券汇总
     * @return 查询结果
     */
    CommonResult getCouponSummary();

    /**
     * 获取已使用优惠券列表
     * @param query 查询参数
     * @return 查询结果
     */
    CommonResult getUseCouponList(CouponQuery query);

    /**
     * 获取未使用优惠券列表
     * @param query 查询参数
     * @return 查询结果
     */
    CommonResult getNotUseCouponList(CouponQuery query);

}
